package ru.averta.notes.domain;

import org.hibernate.search.annotations.Boost;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Store;
import org.hibernate.search.annotations.TermVector;
import ru.averta.notes.domain.abstr.AbstractPersistentObject;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.OneToOne;

/**
 * <code>SiteContent</code>
 *
 * @author fedor.belov (fedor.belov@mail.ru)
 *         Date: 19.09.11 14:29
 */

@Entity
public class SiteContent extends AbstractPersistentObject {

    /** полный HTML странички - если захотим кешировать */
    @Column(columnDefinition="text")
    private String htmlContent;
    /** очищенный от HTML контент страницы */
    @Field(store = Store.YES, termVector = TermVector.WITH_POSITION_OFFSETS)
    @Column(columnDefinition="text")
    private String fullSearchContent;
    /** основной контент страницы - очищенный от header, footer, menu и т.д. */
    @Field(store = Store.YES, termVector = TermVector.WITH_POSITION_OFFSETS)
    @Boost(1.5f)
    @Column(columnDefinition="text")

    private String importantSearchContent;

    /** ссылка на родительский класс */
    @OneToOne(fetch = FetchType.LAZY, mappedBy = "siteContent")
    private Site site;

    public String getHtmlContent() {
        return htmlContent;
    }

    public void setHtmlContent(String htmlContent) {
        this.htmlContent = htmlContent;
    }

    public String getFullSearchContent() {
        return fullSearchContent;
    }

    public void setFullSearchContent(String fullSearchContent) {
        this.fullSearchContent = fullSearchContent;
    }

    public String getImportantSearchContent() {
        return importantSearchContent;
    }

    public void setImportantSearchContent(String importantSearchContent) {
        this.importantSearchContent = importantSearchContent;
    }

    public Site getSite() {
        return site;
    }

    void setSite(Site site) { //Специально без модификатора

        this.site = site;
    }
}
